package com.xcw.function.normal;

import org.apache.poi.ss.formula.functions.T;

import java.awt.print.Printable;
import java.awt.print.PrinterException;
import java.util.List;
import java.util.Map;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;

/**
 * @Author bhx
 * @Date 2022/8/13 1:17
 * @Description TODO
 */
public class ConsumerInter {
    /**
     * 单个List消费型接口
     * @param con
     * @param list
     */
    public static void oneListConsumer(Consumer<List<T>> con, List<T> list){
        con.accept(list);
    }

    /**
     * 单个map的消费接口
     * @param con
     * @param map
     */
    public static void oneMapConsumer(Consumer<Map<String,Object>> con, Map<String,Object> map){
        con.accept(map);
    }

    /**
     * 断言型接口，处理字符串返回boolean
     * @param args
     * @param predicate
     * @return
     */
    public static boolean predicateString(String args, Predicate<String> predicate){
        return predicate.test(args);
    }

    /**
     * lambda表达式处理值返回Obj类型
     * @param o
     * @param function
     * @return
     */
    public static Object changeData(Object o, Function<Object,Object> function){
        return  function.apply(o);
    }


//    /**
//     * 多个消费需要定制化
//     * @param cons
//     * @param list
//     */
//    public static void moreListConsumer(List<Consumer<List<T>>> cons, List<T> list){
//        for (int i = 0; i < cons.size(); i++) {
//           cons.get(i)
//                   .andThen(cons.get(i))
//                   .andThen(cons.get(i))
//                   .accept(list);
//        }
//    }
}
